package com.demo.java.OD451_500.OD483;

import java.util.Scanner;

/**
 * @author bug菌
 * @Source 公众号：猿圈奇妙屋
 * @des： 【虚拟理财游戏(E卷-100分)】问题
 * @url： https://blog.csdn.net/weixin_43970743/article/details/146407853
 */
public class OdMain {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        // 读取输入
        String input_str1 = in.nextLine();
        String input_str2 = in.nextLine();
        String input_str3 = in.nextLine();
        String input_str4 = in.nextLine();

        // 分割输入并解析数据
        int[] params = split(input_str1);
        int m = params[0];
        int n = params[1];
        int x = params[2];

        // 投资项目的回报值、风险值、对应的最终回报
        int[] nums1 = split(input_str2);
        int[] nums2 = split(input_str3);
        int[] nums3 = split(input_str4);

        // 每项投资的回报=回报值*风险值
        int[] nums4 = new int[m];
        for (int i = 0; i < m; i++) {
            nums4[i] = nums3[i] * nums1[i];
        }

        int max_value = 0;
        int target = 0;

        // 选择一个投资
        int i = 0;
        while (i < m) {
            if (nums2[i] <= x && nums3[i] <= n) {
                if (nums4[i] > max_value) {
                    max_value = nums4[i];
                    target = i;
                }
            }
            i++;
        }

        // 选择两个投资
        int k = 0;
        int a = 0, b = 0;
        boolean flag = false;
        while (k < m) {
            for (int j = k + 1; j < m; j++) {
                if (nums2[k] + nums2[j] <= x && nums3[k] + nums3[j] <= n) {
                    if (nums4[k] + nums4[j] > max_value) {
                        max_value = nums4[k] + nums4[j];
                        a = k;
                        b = j;
                        flag = true;
                    }
                }
            }
            k++;
        }

        // 输出最终选择的投资组合
        if (flag) {
            for (int j = 0; j < m; j++) {
                if (j == a) {
                    System.out.print(nums3[j] + " ");
                } else if (j == b) {
                    System.out.print(nums3[j] + " ");
                } else {
                    System.out.print(0 + " ");
                }
            }
        } else {
            for (int j = 0; j < m; j++) {
                if (j == target) {
                    System.out.print(nums3[j] + " ");
                } else {
                    System.out.print(0 + " ");
                }
            }
        }
    }

    // 分割输入的字符串
    public static int[] split(String input_str) {
        String[] tmp2 = input_str.split(" ");
        int[] nums = new int[tmp2.length];
        for (int i = 0; i < tmp2.length; i++) {
            nums[i] = Integer.parseInt(tmp2[i]);
        }
        return nums;
    }
}